Fix iOS native capture and release Flutter 0.8.17 - #57
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
🟡 Changes recommended
There are a couple of concrete correctness/robustness issues in the updated test and iOS plugin callback dispatch that should be addressed before releasing.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR releases Flutter tugboat/tugboat_dio 0.8.17 and updates the iOS native capture integration to improve correctness when engine-surface capture produces unusable frames, while also increasing default degraded screenshot fidelity.
Changes:
- Pin iOS CocoaPods runtime to
TugboatCaptureRuntime0.1.1 and adjust iOS plugin capture flow to retry with explicit hierarchy coverage and resolve only a liveFlutterView. - Raise the default degraded capture scale from 0.67 → 0.80, and add/adjust tests to lock in behavior/trace coverage.
- Bump package versions/changelogs and update the release compatibility table for 0.8.17.
File summaries
| File | Description |
|---|---|
| sdks/flutter/packages/tugboat/test/replay/screenshot_fresh_paint_test.dart | Adds a widget test asserting the new default degraded scaling behavior. |
| sdks/flutter/packages/tugboat/test/replay/native_cpu_backend_test.dart | Adds a test ensuring native trace coverage reflects hierarchy captures. |
| sdks/flutter/packages/tugboat/pubspec.yaml | Bumps tugboat to 0.8.17. |
| sdks/flutter/packages/tugboat/lib/src/sdk_version.dart | Keeps SDK version constant in sync with pubspec (0.8.17). |
| sdks/flutter/packages/tugboat/lib/src/replay_config.dart | Raises default degraded capture scale to 0.80. |
| sdks/flutter/packages/tugboat/ios/tugboat.podspec | Bumps plugin version to 0.8.17 and pins TugboatCaptureRuntime to 0.1.1. |
| sdks/flutter/packages/tugboat/ios/Classes/TugboatPlugin.swift | Splits runtimes by coverage, adds hierarchy retry for pixel-copy failures, and tightens FlutterView resolution. |
| sdks/flutter/packages/tugboat/example/pubspec.yaml | Updates example dependency to tugboat: ^0.8.17. |
| sdks/flutter/packages/tugboat/CHANGELOG.md | Adds 0.8.17 release notes describing iOS capture changes and scaling update. |
| sdks/flutter/packages/tugboat/android/build.gradle | Bumps Android plugin version to 0.8.17. |
| sdks/flutter/packages/tugboat_dio/pubspec.yaml | Bumps tugboat_dio to 0.8.17 and depends on tugboat: ^0.8.17. |
| sdks/flutter/packages/tugboat_dio/CHANGELOG.md | Adds 0.8.17 compatibility release note. |
| docs/releases/compatibility.md | Adds required compatibility row for Flutter tugboat 0.8.17. |
Review details
- Files reviewed: 13/13 changed files
- Comments generated: 2
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 36f35582f5
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
🟡 Changes recommended
The iOS plugin update introduces a lock-held dispose() call that can block or risk lock inversions; it should swap state under the lock and dispose outside it.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review details
- Files reviewed: 13/13 changed files
- Comments generated: 1
- Review effort level: Lite
There was a problem hiding this comment.
🟢 Approval recommended
The changes are consistent with the release intent, include targeted new tests for the updated defaults/coverage reporting, and the versioning + release metadata updates are coherent across the repo.
Review details
- Files reviewed: 13/13 changed files
- Comments generated: 0 new
- Review effort level: Lite
Summary
Validation
Notes